package com.google.project.client.Service;

import java.util.List;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.project.shared.ProjectTaskDTO;
import com.google.project.shared.TaskConstrainDTO;

public interface ProjTaskServiceAsync {


	void getListOfTask(AsyncCallback<List<ProjectTaskDTO>> callback);

	void getTaskById(String taskId, AsyncCallback<ProjectTaskDTO> asyncCallback);

	void getLastTaskId(AsyncCallback<Integer> callback);

	void getTaskByTaskId(int TaskId, AsyncCallback<ProjectTaskDTO> callback);

	void getListConstrain(String taskId,
			AsyncCallback<List<TaskConstrainDTO>> callback);

	void getTaskByUserID(String projectId, String userId,
			AsyncCallback<List<ProjectTaskDTO>> callback);

	void CreateTask(ProjectTaskDTO data, List<ProjectTaskDTO> listTask,
			AsyncCallback<ProjectTaskDTO> callback);

	void deleteListTask(List<ProjectTaskDTO> list,
			List<ProjectTaskDTO> listAll, AsyncCallback<Void> callback);

	void startWork(ProjectTaskDTO task, AsyncCallback<Void> callback);

	void updateTask(ProjectTaskDTO data, AsyncCallback<Void> callback);

	void updateWorkOfParent(ProjectTaskDTO subTask, Double work,
			List<ProjectTaskDTO> listTask, AsyncCallback<Void> callback);

	void updateTaskForClose(ProjectTaskDTO data, List<ProjectTaskDTO> listTask,
			AsyncCallback<Void> callback);

	void updatePlan(ProjectTaskDTO data, List<ProjectTaskDTO> list,
			AsyncCallback<Void> callback);

	void getDataForHightChart(ProjectTaskDTO data, List<Long> Datax,
			AsyncCallback<List<Double>> callback);

	void getListOrderTaskByProjectId(String projectId,
			AsyncCallback<List<ProjectTaskDTO>> callback);



	void getTatolWorkAtDate(ProjectTaskDTO currTask, Long date,
			AsyncCallback<Double> callback);

	void updateForFinish(ProjectTaskDTO data, AsyncCallback<Void> callback);




}
